﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.IO;

public partial class patriota_Lista : System.Web.UI.Page
{
    DataTable dt = null;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack) {
            gv_datos.DataSource=(DataTable)DB.getDatosPatriota("");
            gv_datos.DataBind();
            gv_datos.Enabled = false;

            int empadronado = DB.getVotosPatriota("");
            int votos = DB.getVotosPatriota("where Estado=1");
            int pendientes = empadronado - votos;

            lb_empadronado.Text = empadronado.ToString();
            lb_voto.Text = votos.ToString();
            lb_pendiente.Text = pendientes.ToString();

            cb_centro.DataSource = DB.getCentrosVotacion();
            cb_centro.DataTextField = "nombre";
            cb_centro.DataValueField = "cv_id";
            cb_centro.DataBind();
        }

        
    }
    protected void bt_search_Click(object sender, EventArgs e)
    {
        string where = "";
        if (!tb_padron.Text.Trim().Equals("")) { where += " and Padron="+tb_padron.Text; }
        if (!tb_orden.Text.Trim().Equals("")) { where += " and upper(Cedula) like '%" + tb_orden.Text + "%'"; }
        if (!tb_nombre.Text.Trim().Equals("")) { where += " and upper(Nombre) like '%"+tb_nombre.Text.ToUpper()+"%'"; }
        if (cb_centro.SelectedIndex!=0) { where += " and upper(Nombre) like '%"+cb_centro.SelectedItem.ToString().Trim()+"%'"; }
        if (!tb_cui.Text.Trim().Equals("")) { where += " and upper(Cui) like '%"+tb_cui.Text+"%'"; }
        gv_datos.DataSource = (DataTable)DB.getDatosPatriota(where);
        gv_datos.DataBind();
        gv_datos.Enabled = true;
        if (where.Equals("")){
            gv_datos.Enabled = false;
        }
        cb_centro.SelectedIndex = 0; ; tb_cui.Text = ""; tb_nombre.Text = ""; tb_orden.Text = ""; tb_padron.Text = ""; 
    }
    protected void chk_estado_CheckedChanged(object sender, EventArgs e)
    {
        int estado = 0;
        int padron = 0;
        CheckBox chk = (CheckBox)sender;
        GridViewRow objFila = (GridViewRow)chk.Parent.Parent;
        Label lb = (Label)objFila.FindControl("lb_padron");
        if (chk.Checked) { estado = 1; } else { estado = 0; }
        if (lb != null && !lb.Text.Trim().Equals(""))
            padron = int.Parse(lb.Text);

        DB.updateEstadoPatriota(padron, estado);

        int empadronado = DB.getVotosPatriota("");
        int votos = DB.getVotosPatriota("where Estado=1");
        int pendientes = empadronado - votos;

        lb_empadronado.Text = empadronado.ToString();
        lb_voto.Text = votos.ToString();
        lb_pendiente.Text = pendientes.ToString();
    }

    protected void dplist_centro_indexchanged(object sender, EventArgs e)
    {
        int padron = 0;
        int estado = 0;
       
        DropDownList dpl = (DropDownList)sender;
        GridViewRow objFila = (GridViewRow)dpl.Parent.Parent;
        Label lb = (Label)objFila.FindControl("lb_padron");
        CheckBox chk = (CheckBox)objFila.FindControl("chk_estado");
        if (chk.Checked) { estado = 1; } else { estado = 0; }
        if (lb != null && !lb.Text.Trim().Equals(""))
            padron = int.Parse(lb.Text);
        if (dpl!=null && dpl.SelectedIndex!=0){
            int centro = int.Parse(dpl.SelectedValue.ToString());
            int resp=DB.updateCentroUserPatriota(padron, centro);
            if (estado==0){
                chk.Checked = true;
            DB.updateEstadoPatriota(padron, 1);
            int empadronado = DB.getVotosPatriota("");
            int votos = DB.getVotosPatriota("where Estado=1");
            int pendientes = empadronado - votos;
            
            lb_empadronado.Text = empadronado.ToString();
            lb_voto.Text = votos.ToString();
            lb_pendiente.Text = pendientes.ToString();
            }
        }
    }

    public static DataTable getCentrosVotacion()
    {
        DataTable dt = new DataTable("centros");
        dt.Columns.Add("cv_id");
        dt.Columns.Add("nombre");
        dt.Columns.Add("direccion");
        dt.Columns.Add("clasificacion");
        SqlConnection conn = null;
        SqlCommand comm = null;
        SqlDataReader rs = null;
        RE_GenericBean rgb = null;
        try
        {
            
            

            conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=PacificStarBPO;Integrated Security=True;Pooling=False");
            conn.Open();
        
        
            comm = new SqlCommand();
            comm.Connection = conn;
            comm.CommandType = CommandType.Text;

            comm.CommandText = "select cv_id, nombre, direccion, clasificacion from tbl_centrovotacion ";
            rs = comm.ExecuteReader();
            while (rs.Read())
            {
                rgb = new RE_GenericBean();
                if (!rs.IsDBNull(0)) rgb.intC1 = rs.GetInt32(0);
                if (!rs.IsDBNull(1)) rgb.strC1 = rs.GetString(1);
                if (!rs.IsDBNull(2)) rgb.strC2 = rs.GetString(2);
                if (!rs.IsDBNull(3)) rgb.strC3 = rs.GetString(3);

                object[] objArr = { rgb.intC1, rgb.strC1, rgb.strC2, rgb.strC3 };
                dt.Rows.Add(objArr);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message.ToString());
            string ruta = "c:\\TEMP\\archivo.txt";
            StreamWriter escritor = new StreamWriter(ruta, true);
            escritor.WriteLine(e.Message.ToString());
            escritor.Close();
            return null;
        }
        finally
        {
            if (comm != null)
                comm.Dispose();
            if (conn != null)
            {
                conn.Close();
                conn.Dispose();
            }
        }
        return dt;
    }
}